/* Représente la déclaration d'un élément :
 * <! ELEMENT ... >
 */


#include "DtdDeclaration.h"

#include <cstddef>


DtdDeclaration::DtdDeclaration( )
	: elementType(ELM_CHILDREN), tree(NULL)
{
	/* Bloc vide */
}

DtdDeclaration::~DtdDeclaration()
{
	delete tree;
}

/* false si l'attribut a pas été ajouté car il est déjà présent.
 */
void DtdDeclaration::addAttribut(std::string &p_attr)
{
	attributs.insert(p_attr);
}

/* Test si un attribut est dans le set */
bool DtdDeclaration::isAttribut(std::string &p_attr)
{
	return (attributs.find(p_attr) != attributs.end());
}

/* Permet de traverser la liste des attributs */
void DtdDeclaration::setAttrItToBeg()
{
	attrIt = attributs.begin();
}

const std::string& DtdDeclaration::getAttrItNext()
{
	const std::string &s = *attrIt;
	attrIt++;

	return s;
}

bool DtdDeclaration::attrItContinue()
{
	return (attrIt != attributs.end());
}